package com.tlias.filter;

import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;

@Slf4j
//@WebFilter(urlPatterns = "/*")
//过滤器(Filter)//过滤器(Filter)需要实现过滤器接口(Filter)
public class DemoFilter implements Filter {
    @Override//初始化方法，在web服务器启动的时候会触发一次
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
        log.info("演示过滤器 init开启");
    }

    @Override
    //过滤方法，在web服务器每次收到请求的时候都会触发核心方法
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        log.info("演示过滤器 doFilter执行过滤,放行前逻辑");
        //放行,没有这个句，请求会一直卡在过滤器里面，不会进入到下一个过滤器或者Servlet中就无法访问资源核心方法
        filterChain.doFilter(servletRequest,servletResponse);
         log.info("演示过滤器 doFilter执行过滤,放行后逻辑");
    }

    @Override
    //销毁方法，在web服务器关闭的时候会触发一次
    public void destroy() {
        Filter.super.destroy();
        log.info("演示过滤器 destroy销毁");
    }
}
